#include <cJSON/cJSON.h>
#include "log/log.h"

int main(int argc, char const *argv[])
{
    /*
      {"name":"wpb","age":23}
      1.生成一个json字符串
      2.解析json字符串，得到其中特定的数据
    */

    // 1.生成一个json字符串
    cJSON *root = cJSON_CreateObject(); // 其实就是生成一个{}
    // 添加
    cJSON_AddStringToObject(root, "name", "wpb"); // {"name":"wpb"}
    cJSON_AddNumberToObject(root, "age", 23);     // {"name":"wpb","age":23}

    char *json = cJSON_PrintUnformatted(root); // 不格式化换行
    log_debug("生成json格式化字符串%s", json);

    // 2. 解析json字符串，得到其中特定的数据
    cJSON *value = cJSON_Parse(json);
    if (value == NULL)
    {
        log_error("解析json字符串失败");
        return -1;
    }
    cJSON *nameObj = cJSON_GetObjectItem(value, "name");
    if (nameObj == NULL)
    {
        log_error("解析json字符串name失败");
        return -1;
    }
    cJSON *ageObj = cJSON_GetObjectItem(value, "age");
    if (ageObj == NULL)
    {
        log_error("解析json字符串age失败");
        return -1;
    }

    char *name = nameObj->valuestring;
    int age = ageObj->valueint;
    log_debug("解析json:name=%s,age=%d", name, age);

    return 0;
}
